package com.shrct.businessprocess.product;

import com.shrct.businessprocess.product.RCAnonymousProductEntry;
import com.shrct.businessprocess.product.RCAnonymouseProductEntryRootStatus;
import com.shrct.businessprocess.product.impl.RCAnonymouseProductEntryRootImpl;
import com.shrct.businessprocess.product.proxy.RCAnonymouseProductEntryRootProxy;
import com.shrct.businessprocess.purchase.RCPurchaseOrderItem;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = RCAnonymouseProductEntryRootImpl.class)
public interface RCAnonymouseProductEntryRoot extends IModelObject {
  public abstract String getBatchSid();
  
  public abstract RCAnonymouseProductEntryRoot setBatchSid(final String batchSid);
  
  public abstract Collection<RCAnonymousProductEntry> getEntries();
  
  public abstract RCAnonymousProductEntry createAndAddtoEntries();
  
  public abstract RCAnonymousProductEntry createAndAddtoEntries(final Procedure1<RCAnonymousProductEntry> updater);
  
  public abstract RCAnonymouseProductEntryRoot removeFromEntries(final RCAnonymousProductEntry rCAnonymousProductEntry);
  
  public abstract RCAnonymouseProductEntryRoot removeAllEntries();
  
  public abstract RCAnonymousProductEntry getHostEntry();
  
  public abstract RCAnonymouseProductEntryRootStatus getStatus();
  
  public abstract void start();
  
  public abstract void _inStock(final RCPurchaseOrderItem orderItem, final Integer quantity);
  
  public abstract void _deliver(final RCAnonymousProductEntry target, final Integer quantity);
  
  public abstract void _return(final RCAnonymousProductEntry source, final Integer quantity);
  
  public abstract Boolean isExisting();
  
  public abstract RCAnonymouseProductEntryRootProxy toProxy();
}
